<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>FilenameUtils (Apache Commons IO 2.5 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="FilenameUtils (Apache Commons IO 2.5 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FilenameUtils.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/commons/io/FilenameUtils.html" target="_top">Frames</a></li>
<li><a href="FilenameUtils.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.io</div>
<h2 title="Class FilenameUtils" class="title">Class FilenameUtils</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.io.FilenameUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">FilenameUtils</span>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">General filename and filepath manipulation utilities.
 <p>
 When dealing with filenames you can hit problems when moving from a Windows
 based development machine to a Unix based production machine.
 This class aims to help avoid those problems.
 <p>
 <b>NOTE</b>: You may be able to avoid using this class entirely simply by
 using JDK <a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io"><code>File</code></a> objects and the two argument constructor
 <a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true#File(java.io.File,%20java.lang.String)" title="class or interface in java.io"><code>File(File,String)</code></a>.
 <p>
 Most methods on this class are designed to work the same on both Unix and Windows.
 Those that don't include 'System', 'Unix' or 'Windows' in their name.
 <p>
 Most methods recognise both separators (forward and back), and both
 sets of prefixes. See the javadoc of each method for details.
 <p>
 This class defines six components within a filename
 (example C:\dev\projectBean\file.txt):
 <ul>
 <li>the prefix - C:\</li>
 <li>the path - dev\projectBean\</li>
 <li>the full path - C:\dev\projectBean\</li>
 <li>the name - file.txt</li>
 <li>the base name - file</li>
 <li>the extension - txt</li>
 </ul>
 Note that this class works best if directory filenames end with a separator.
 If you omit the last separator, it is impossible to determine if the filename
 corresponds to a file or a directory. As a result, we have chosen to say
 it corresponds to a file.
 <p>
 This class only supports Unix and Windows style names.
 Prefixes are matched as follows:
 <pre>
 Windows:
 a\b\c.txt           --&gt; ""          --&gt; relative
 \a\b\c.txt          --&gt; "\"         --&gt; current drive absolute
 C:a\b\c.txt         --&gt; "C:"        --&gt; drive relative
 C:\a\b\c.txt        --&gt; "C:\"       --&gt; absolute
 \\server\a\b\c.txt  --&gt; "\\server\" --&gt; UNC

 Unix:
 a/b/c.txt           --&gt; ""          --&gt; relative
 /a/b/c.txt          --&gt; "/"         --&gt; absolute
 ~/a/b/c.txt         --&gt; "~/"        --&gt; current userBean
 ~                   --&gt; "~/"        --&gt; current userBean (slash added)
 ~userBean/a/b/c.txt     --&gt; "~userBean/"    --&gt; named userBean
 ~userBean               --&gt; "~userBean/"    --&gt; named userBean (slash added)
 </pre>
 Both prefix styles are matched always, irrespective of the machine that you are
 currently running on.
 <p>
 Origin of code: Excalibur, Alexandria, Tomcat, Commons-Utils.</div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>1.1</dd>
<dt><span class="strong">Version:</span></dt>
  <dd>$Id: FilenameUtils.java 1702170 2015-09-10 06:35:02Z krosenvold $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static char</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#EXTENSION_SEPARATOR">EXTENSION_SEPARATOR</a></strong></code>
<div class="block">The extension separator character.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#EXTENSION_SEPARATOR_STR">EXTENSION_SEPARATOR_STR</a></strong></code>
<div class="block">The extension separator String.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#FilenameUtils()">FilenameUtils</a></strong>()</code>
<div class="block">Instances should NOT be constructed in standard programming.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#concat(java.lang.String,%20java.lang.String)">concat</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;basePath,
      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fullFilenameToAdd)</code>
<div class="block">Concatenates a filename to a base path using normal command line style rules.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#directoryContains(java.lang.String,%20java.lang.String)">directoryContains</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalParent,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalChild)</code>
<div class="block">Determines whether the <code>parent</code> directory contains the <code>child</code> element (a file or directory).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#equals(java.lang.String,%20java.lang.String)">equals</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2)</code>
<div class="block">Checks whether two filenames are equal exactly.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#equals(java.lang.String,%20java.lang.String,%20boolean,%20org.apache.commons.io.IOCase)">equals</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2,
      boolean&nbsp;normalized,
      <a href="../../../../org/apache/commons/io/IOCase.html" title="enum in org.apache.commons.io">IOCase</a>&nbsp;caseSensitivity)</code>
<div class="block">Checks whether two filenames are equal, optionally normalizing and providing
 control over the case-sensitivity.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#equalsNormalized(java.lang.String,%20java.lang.String)">equalsNormalized</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2)</code>
<div class="block">Checks whether two filenames are equal after both have been normalized.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#equalsNormalizedOnSystem(java.lang.String,%20java.lang.String)">equalsNormalizedOnSystem</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2)</code>
<div class="block">Checks whether two filenames are equal after both have been normalized
 and using the case rules of the system.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#equalsOnSystem(java.lang.String,%20java.lang.String)">equalsOnSystem</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2)</code>
<div class="block">Checks whether two filenames are equal using the case rules of the system.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getBaseName(java.lang.String)">getBaseName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Gets the base name, minus the full path and extension, from a full filename.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getExtension(java.lang.String)">getExtension</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Gets the extension of a filename.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getFullPath(java.lang.String)">getFullPath</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Gets the full path from a full filename, which is the prefix + path.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getFullPathNoEndSeparator(java.lang.String)">getFullPathNoEndSeparator</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Gets the full path from a full filename, which is the prefix + path,
 and also excluding the final directory separator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getName(java.lang.String)">getName</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Gets the name minus the path from a full filename.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getPath(java.lang.String)">getPath</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Gets the path from a full filename, which excludes the prefix.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getPathNoEndSeparator(java.lang.String)">getPathNoEndSeparator</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Gets the path from a full filename, which excludes the prefix, and
 also excluding the final directory separator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getPrefix(java.lang.String)">getPrefix</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Gets the prefix from a full filename, such as <code>C:/</code>
 or <code>~/</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#getPrefixLength(java.lang.String)">getPrefixLength</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Returns the length of the filename prefix, such as <code>C:/</code> or <code>~/</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#indexOfExtension(java.lang.String)">indexOfExtension</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Returns the index of the last extension separator character, which is a dot.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#indexOfLastSeparator(java.lang.String)">indexOfLastSeparator</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Returns the index of the last directory separator character.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String,%20java.util.Collection)">isExtension</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
           <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;extensions)</code>
<div class="block">Checks whether the extension of the filename is one of those specified.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String,%20java.lang.String)">isExtension</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;extension)</code>
<div class="block">Checks whether the extension of the filename is that specified.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#isExtension(java.lang.String,%20java.lang.String[])">isExtension</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;extensions)</code>
<div class="block">Checks whether the extension of the filename is one of those specified.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String)">normalize</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Normalizes a path, removing double and single dot path steps.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String,%20boolean)">normalize</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
         boolean&nbsp;unixSeparator)</code>
<div class="block">Normalizes a path, removing double and single dot path steps.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#normalizeNoEndSeparator(java.lang.String)">normalizeNoEndSeparator</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Normalizes a path, removing double and single dot path steps,
 and removing any final directory separator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#normalizeNoEndSeparator(java.lang.String,%20boolean)">normalizeNoEndSeparator</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                       boolean&nbsp;unixSeparator)</code>
<div class="block">Normalizes a path, removing double and single dot path steps,
 and removing any final directory separator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#removeExtension(java.lang.String)">removeExtension</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>
<div class="block">Removes the extension from a filename.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#separatorsToSystem(java.lang.String)">separatorsToSystem</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</code>
<div class="block">Converts all separators to the system separator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#separatorsToUnix(java.lang.String)">separatorsToUnix</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</code>
<div class="block">Converts all separators to the Unix separator of forward slash.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#separatorsToWindows(java.lang.String)">separatorsToWindows</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</code>
<div class="block">Converts all separators to the Windows separator of backslash.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#wildcardMatch(java.lang.String,%20java.lang.String)">wildcardMatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardMatcher)</code>
<div class="block">Checks a filename to see if it matches the specified wildcard matcher,
 always testing case-sensitive.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#wildcardMatch(java.lang.String,%20java.lang.String,%20org.apache.commons.io.IOCase)">wildcardMatch</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardMatcher,
             <a href="../../../../org/apache/commons/io/IOCase.html" title="enum in org.apache.commons.io">IOCase</a>&nbsp;caseSensitivity)</code>
<div class="block">Checks a filename to see if it matches the specified wildcard matcher
 allowing control over case-sensitivity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/commons/io/FilenameUtils.html#wildcardMatchOnSystem(java.lang.String,%20java.lang.String)">wildcardMatchOnSystem</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardMatcher)</code>
<div class="block">Checks a filename to see if it matches the specified wildcard matcher
 using the case rules of the system.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="EXTENSION_SEPARATOR">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EXTENSION_SEPARATOR</h4>
<pre>public static final&nbsp;char EXTENSION_SEPARATOR</pre>
<div class="block">The extension separator character.</div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>1.4</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.commons.io.FilenameUtils.EXTENSION_SEPARATOR">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="EXTENSION_SEPARATOR_STR">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EXTENSION_SEPARATOR_STR</h4>
<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> EXTENSION_SEPARATOR_STR</pre>
<div class="block">The extension separator String.</div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>1.4</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="FilenameUtils()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FilenameUtils</h4>
<pre>public&nbsp;FilenameUtils()</pre>
<div class="block">Instances should NOT be constructed in standard programming.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="normalize(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>normalize</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;normalize(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Normalizes a path, removing double and single dot path steps.
 <p>
 This method normalizes a path to a standard format.
 The input may contain separators in either Unix or Windows format.
 The output will contain separators in the format of the system.
 <p>
 A trailing slash will be retained.
 A double slash will be merged to a single slash (but UNC names are handled).
 A single dot path segment will be removed.
 A double dot will cause that path segment and the one before to be removed.
 If the double dot has no parent path segment to work with, <code>null</code>
 is returned.
 <p>
 The output will be the same on both Unix and Windows except
 for the separator character.
 <pre>
 /foo//               --&gt;   /foo/
 /foo/./              --&gt;   /foo/
 /foo/../bar          --&gt;   /bar
 /foo/../bar/         --&gt;   /bar/
 /foo/../bar/../baz   --&gt;   /baz
 //foo//./bar         --&gt;   /foo/bar
 /../                 --&gt;   null
 ../foo               --&gt;   null
 foo/bar/..           --&gt;   foo/
 foo/../../bar        --&gt;   null
 foo/../bar           --&gt;   bar
 //server/foo/../bar  --&gt;   //server/bar
 //server/../bar      --&gt;   null
 C:\foo\..\bar        --&gt;   C:\bar
 C:\..\bar            --&gt;   null
 ~/foo/../bar/        --&gt;   ~/bar/
 ~/../bar             --&gt;   null
 </pre>
 (Note the file separator returned will be correct for Windows/Unix)</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to normalize, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the normalized filename, or null if invalid. Null bytes inside string will be removed</dd></dl>
</li>
</ul>
<a name="normalize(java.lang.String, boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>normalize</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;normalize(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
               boolean&nbsp;unixSeparator)</pre>
<div class="block">Normalizes a path, removing double and single dot path steps.
 <p>
 This method normalizes a path to a standard format.
 The input may contain separators in either Unix or Windows format.
 The output will contain separators in the format specified.
 <p>
 A trailing slash will be retained.
 A double slash will be merged to a single slash (but UNC names are handled).
 A single dot path segment will be removed.
 A double dot will cause that path segment and the one before to be removed.
 If the double dot has no parent path segment to work with, <code>null</code>
 is returned.
 <p>
 The output will be the same on both Unix and Windows except
 for the separator character.
 <pre>
 /foo//               --&gt;   /foo/
 /foo/./              --&gt;   /foo/
 /foo/../bar          --&gt;   /bar
 /foo/../bar/         --&gt;   /bar/
 /foo/../bar/../baz   --&gt;   /baz
 //foo//./bar         --&gt;   /foo/bar
 /../                 --&gt;   null
 ../foo               --&gt;   null
 foo/bar/..           --&gt;   foo/
 foo/../../bar        --&gt;   null
 foo/../bar           --&gt;   bar
 //server/foo/../bar  --&gt;   //server/bar
 //server/../bar      --&gt;   null
 C:\foo\..\bar        --&gt;   C:\bar
 C:\..\bar            --&gt;   null
 ~/foo/../bar/        --&gt;   ~/bar/
 ~/../bar             --&gt;   null
 </pre>
 The output will be the same on both Unix and Windows including
 the separator character.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to normalize, null returns null</dd><dd><code>unixSeparator</code> - <code>true</code> if a unix separator should
 be used or <code>false</code> if a windows separator should be used.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the normalized filename, or null if invalid. Null bytes inside string will be removed</dd><dt><span class="strong">Since:</span></dt>
  <dd>2.0</dd></dl>
</li>
</ul>
<a name="normalizeNoEndSeparator(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>normalizeNoEndSeparator</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;normalizeNoEndSeparator(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Normalizes a path, removing double and single dot path steps,
 and removing any final directory separator.
 <p>
 This method normalizes a path to a standard format.
 The input may contain separators in either Unix or Windows format.
 The output will contain separators in the format of the system.
 <p>
 A trailing slash will be removed.
 A double slash will be merged to a single slash (but UNC names are handled).
 A single dot path segment will be removed.
 A double dot will cause that path segment and the one before to be removed.
 If the double dot has no parent path segment to work with, <code>null</code>
 is returned.
 <p>
 The output will be the same on both Unix and Windows except
 for the separator character.
 <pre>
 /foo//               --&gt;   /foo
 /foo/./              --&gt;   /foo
 /foo/../bar          --&gt;   /bar
 /foo/../bar/         --&gt;   /bar
 /foo/../bar/../baz   --&gt;   /baz
 //foo//./bar         --&gt;   /foo/bar
 /../                 --&gt;   null
 ../foo               --&gt;   null
 foo/bar/..           --&gt;   foo
 foo/../../bar        --&gt;   null
 foo/../bar           --&gt;   bar
 //server/foo/../bar  --&gt;   //server/bar
 //server/../bar      --&gt;   null
 C:\foo\..\bar        --&gt;   C:\bar
 C:\..\bar            --&gt;   null
 ~/foo/../bar/        --&gt;   ~/bar
 ~/../bar             --&gt;   null
 </pre>
 (Note the file separator returned will be correct for Windows/Unix)</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to normalize, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the normalized filename, or null if invalid. Null bytes inside string will be removed</dd></dl>
</li>
</ul>
<a name="normalizeNoEndSeparator(java.lang.String, boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>normalizeNoEndSeparator</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;normalizeNoEndSeparator(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                             boolean&nbsp;unixSeparator)</pre>
<div class="block">Normalizes a path, removing double and single dot path steps,
 and removing any final directory separator.
 <p>
 This method normalizes a path to a standard format.
 The input may contain separators in either Unix or Windows format.
 The output will contain separators in the format specified.
 <p>
 A trailing slash will be removed.
 A double slash will be merged to a single slash (but UNC names are handled).
 A single dot path segment will be removed.
 A double dot will cause that path segment and the one before to be removed.
 If the double dot has no parent path segment to work with, <code>null</code>
 is returned.
 <p>
 The output will be the same on both Unix and Windows including
 the separator character.
 <pre>
 /foo//               --&gt;   /foo
 /foo/./              --&gt;   /foo
 /foo/../bar          --&gt;   /bar
 /foo/../bar/         --&gt;   /bar
 /foo/../bar/../baz   --&gt;   /baz
 //foo//./bar         --&gt;   /foo/bar
 /../                 --&gt;   null
 ../foo               --&gt;   null
 foo/bar/..           --&gt;   foo
 foo/../../bar        --&gt;   null
 foo/../bar           --&gt;   bar
 //server/foo/../bar  --&gt;   //server/bar
 //server/../bar      --&gt;   null
 C:\foo\..\bar        --&gt;   C:\bar
 C:\..\bar            --&gt;   null
 ~/foo/../bar/        --&gt;   ~/bar
 ~/../bar             --&gt;   null
 </pre></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to normalize, null returns null</dd><dd><code>unixSeparator</code> - <code>true</code> if a unix separator should
 be used or <code>false</code> if a windows separtor should be used.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the normalized filename, or null if invalid. Null bytes inside string will be removed</dd><dt><span class="strong">Since:</span></dt>
  <dd>2.0</dd></dl>
</li>
</ul>
<a name="concat(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>concat</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;concat(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;basePath,
            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fullFilenameToAdd)</pre>
<div class="block">Concatenates a filename to a base path using normal command line style rules.
 <p>
 The effect is equivalent to resultant directory after changing
 directory to the first argument, followed by changing directory to
 the second argument.
 <p>
 The first argument is the base path, the second is the path to concatenate.
 The returned path is always normalized via <a href="../../../../org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String)"><code>normalize(String)</code></a>,
 thus <code>..</code> is handled.
 <p>
 If <code>pathToAdd</code> is absolute (has an absolute prefix), then
 it will be normalized and returned.
 Otherwise, the paths will be joined, normalized and returned.
 <p>
 The output will be the same on both Unix and Windows except
 for the separator character.
 <pre>
 /foo/ + bar          --&gt;   /foo/bar
 /foo + bar           --&gt;   /foo/bar
 /foo + /bar          --&gt;   /bar
 /foo + C:/bar        --&gt;   C:/bar
 /foo + C:bar         --&gt;   C:bar (*)
 /foo/a/ + ../bar     --&gt;   foo/bar
 /foo/ + ../../bar    --&gt;   null
 /foo/ + /bar         --&gt;   /bar
 /foo/.. + /bar       --&gt;   /bar
 /foo + bar/c.txt     --&gt;   /foo/bar/c.txt
 /foo/c.txt + bar     --&gt;   /foo/c.txt/bar (!)
 </pre>
 (*) Note that the Windows relative drive prefix is unreliable when
 used with this method.
 (!) Note that the first parameter must be a path. If it ends with a name, then
 the name will be built into the concatenated path. If this might be a problem,
 use <a href="../../../../org/apache/commons/io/FilenameUtils.html#getFullPath(java.lang.String)"><code>getFullPath(String)</code></a> on the base path argument.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>basePath</code> - the base path to attach to, always treated as a path</dd><dd><code>fullFilenameToAdd</code> - the filename (or path) to attach to the base</dd>
<dt><span class="strong">Returns:</span></dt><dd>the concatenated path, or null if invalid.  Null bytes inside string will be removed</dd></dl>
</li>
</ul>
<a name="directoryContains(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>directoryContains</h4>
<pre>public static&nbsp;boolean&nbsp;directoryContains(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalParent,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalChild)
                                 throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Determines whether the <code>parent</code> directory contains the <code>child</code> element (a file or directory).
 <p>
 The files names are expected to be normalized.
 </p>

 Edge cases:
 <ul>
 <li>A <code>directory</code> must not be null: if null, throw IllegalArgumentException</li>
 <li>A directory does not contain itself: return false</li>
 <li>A null child file is not contained in any parent: return false</li>
 </ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>canonicalParent</code> - the file to consider as the parent.</dd><dd><code>canonicalChild</code> - the file to consider as the child.</dd>
<dt><span class="strong">Returns:</span></dt><dd>true is the candidate leaf is under by the specified composite. False otherwise.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if an IO error occurs while checking the files.</dd><dt><span class="strong">Since:</span></dt>
  <dd>2.2</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/commons/io/FileUtils.html#directoryContains(java.io.File,%20java.io.File)"><code>FileUtils.directoryContains(File, File)</code></a></dd></dl>
</li>
</ul>
<a name="separatorsToUnix(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>separatorsToUnix</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;separatorsToUnix(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</pre>
<div class="block">Converts all separators to the Unix separator of forward slash.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - the path to be changed, null ignored</dd>
<dt><span class="strong">Returns:</span></dt><dd>the updated path</dd></dl>
</li>
</ul>
<a name="separatorsToWindows(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>separatorsToWindows</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;separatorsToWindows(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</pre>
<div class="block">Converts all separators to the Windows separator of backslash.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - the path to be changed, null ignored</dd>
<dt><span class="strong">Returns:</span></dt><dd>the updated path</dd></dl>
</li>
</ul>
<a name="separatorsToSystem(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>separatorsToSystem</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;separatorsToSystem(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</pre>
<div class="block">Converts all separators to the system separator.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - the path to be changed, null ignored</dd>
<dt><span class="strong">Returns:</span></dt><dd>the updated path</dd></dl>
</li>
</ul>
<a name="getPrefixLength(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrefixLength</h4>
<pre>public static&nbsp;int&nbsp;getPrefixLength(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Returns the length of the filename prefix, such as <code>C:/</code> or <code>~/</code>.
 <p>
 This method will handle a file in either Unix or Windows format.
 <p>
 The prefix length includes the first slash in the full filename
 if applicable. Thus, it is possible that the length returned is greater
 than the length of the input string.
 <pre>
 Windows:
 a\b\c.txt           --&gt; ""          --&gt; relative
 \a\b\c.txt          --&gt; "\"         --&gt; current drive absolute
 C:a\b\c.txt         --&gt; "C:"        --&gt; drive relative
 C:\a\b\c.txt        --&gt; "C:\"       --&gt; absolute
 \\server\a\b\c.txt  --&gt; "\\server\" --&gt; UNC
 \\\a\b\c.txt        --&gt;  error, length = -1

 Unix:
 a/b/c.txt           --&gt; ""          --&gt; relative
 /a/b/c.txt          --&gt; "/"         --&gt; absolute
 ~/a/b/c.txt         --&gt; "~/"        --&gt; current userBean
 ~                   --&gt; "~/"        --&gt; current userBean (slash added)
 ~userBean/a/b/c.txt     --&gt; "~userBean/"    --&gt; named userBean
 ~userBean               --&gt; "~userBean/"    --&gt; named userBean (slash added)
 //server/a/b/c.txt  --&gt; "//server/"
 ///a/b/c.txt        --&gt; error, length = -1
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.
 ie. both Unix and Windows prefixes are matched regardless.

 Note that a leading // (or \\) is used to indicate a UNC name on Windows.
 These must be followed by a server name, so double-slashes are not collapsed
 to a single slash at the start of the filename.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to find the prefix in, null returns -1</dd>
<dt><span class="strong">Returns:</span></dt><dd>the length of the prefix, -1 if invalid or null</dd></dl>
</li>
</ul>
<a name="indexOfLastSeparator(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>indexOfLastSeparator</h4>
<pre>public static&nbsp;int&nbsp;indexOfLastSeparator(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Returns the index of the last directory separator character.
 <p>
 This method will handle a file in either Unix or Windows format.
 The position of the last forward or backslash is returned.
 <p>
 The output will be the same irrespective of the machine that the code is running on.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to find the last path separator in, null returns -1</dd>
<dt><span class="strong">Returns:</span></dt><dd>the index of the last separator character, or -1 if there
 is no such character</dd></dl>
</li>
</ul>
<a name="indexOfExtension(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>indexOfExtension</h4>
<pre>public static&nbsp;int&nbsp;indexOfExtension(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Returns the index of the last extension separator character, which is a dot.
 <p>
 This method also checks that there is no directory separator after the last dot. To do this it uses
 <a href="../../../../org/apache/commons/io/FilenameUtils.html#indexOfLastSeparator(java.lang.String)"><code>indexOfLastSeparator(String)</code></a> which will handle a file in either Unix or Windows format.
 </p>
 <p>
 The output will be the same irrespective of the machine that the code is running on.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to find the last extension separator in, null returns -1</dd>
<dt><span class="strong">Returns:</span></dt><dd>the index of the last extension separator character, or -1 if there is no such character</dd></dl>
</li>
</ul>
<a name="getPrefix(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrefix</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrefix(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Gets the prefix from a full filename, such as <code>C:/</code>
 or <code>~/</code>.
 <p>
 This method will handle a file in either Unix or Windows format.
 The prefix includes the first slash in the full filename where applicable.
 <pre>
 Windows:
 a\b\c.txt           --&gt; ""          --&gt; relative
 \a\b\c.txt          --&gt; "\"         --&gt; current drive absolute
 C:a\b\c.txt         --&gt; "C:"        --&gt; drive relative
 C:\a\b\c.txt        --&gt; "C:\"       --&gt; absolute
 \\server\a\b\c.txt  --&gt; "\\server\" --&gt; UNC

 Unix:
 a/b/c.txt           --&gt; ""          --&gt; relative
 /a/b/c.txt          --&gt; "/"         --&gt; absolute
 ~/a/b/c.txt         --&gt; "~/"        --&gt; current userBean
 ~                   --&gt; "~/"        --&gt; current userBean (slash added)
 ~userBean/a/b/c.txt     --&gt; "~userBean/"    --&gt; named userBean
 ~userBean               --&gt; "~userBean/"    --&gt; named userBean (slash added)
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.
 ie. both Unix and Windows prefixes are matched regardless.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the prefix of the file, null if invalid. Null bytes inside string will be removed</dd></dl>
</li>
</ul>
<a name="getPath(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPath</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPath(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Gets the path from a full filename, which excludes the prefix.
 <p>
 This method will handle a file in either Unix or Windows format.
 The method is entirely text based, and returns the text before and
 including the last forward or backslash.
 <pre>
 C:\a\b\c.txt --&gt; a\b\
 ~/a/b/c.txt  --&gt; a/b/
 a.txt        --&gt; ""
 a/b/c        --&gt; a/b/
 a/b/c/       --&gt; a/b/c/
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.
 <p>
 This method drops the prefix from the result.
 See <a href="../../../../org/apache/commons/io/FilenameUtils.html#getFullPath(java.lang.String)"><code>getFullPath(String)</code></a> for the method that retains the prefix.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the path of the file, an empty string if none exists, null if invalid.
 Null bytes inside string will be removed</dd></dl>
</li>
</ul>
<a name="getPathNoEndSeparator(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPathNoEndSeparator</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPathNoEndSeparator(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Gets the path from a full filename, which excludes the prefix, and
 also excluding the final directory separator.
 <p>
 This method will handle a file in either Unix or Windows format.
 The method is entirely text based, and returns the text before the
 last forward or backslash.
 <pre>
 C:\a\b\c.txt --&gt; a\b
 ~/a/b/c.txt  --&gt; a/b
 a.txt        --&gt; ""
 a/b/c        --&gt; a/b
 a/b/c/       --&gt; a/b/c
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.
 <p>
 This method drops the prefix from the result.
 See <a href="../../../../org/apache/commons/io/FilenameUtils.html#getFullPathNoEndSeparator(java.lang.String)"><code>getFullPathNoEndSeparator(String)</code></a> for the method that retains the prefix.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the path of the file, an empty string if none exists, null if invalid.
 Null bytes inside string will be removed</dd></dl>
</li>
</ul>
<a name="getFullPath(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFullPath</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getFullPath(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Gets the full path from a full filename, which is the prefix + path.
 <p>
 This method will handle a file in either Unix or Windows format.
 The method is entirely text based, and returns the text before and
 including the last forward or backslash.
 <pre>
 C:\a\b\c.txt --&gt; C:\a\b\
 ~/a/b/c.txt  --&gt; ~/a/b/
 a.txt        --&gt; ""
 a/b/c        --&gt; a/b/
 a/b/c/       --&gt; a/b/c/
 C:           --&gt; C:
 C:\          --&gt; C:\
 ~            --&gt; ~/
 ~/           --&gt; ~/
 ~userBean        --&gt; ~userBean/
 ~userBean/       --&gt; ~userBean/
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the path of the file, an empty string if none exists, null if invalid</dd></dl>
</li>
</ul>
<a name="getFullPathNoEndSeparator(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFullPathNoEndSeparator</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getFullPathNoEndSeparator(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Gets the full path from a full filename, which is the prefix + path,
 and also excluding the final directory separator.
 <p>
 This method will handle a file in either Unix or Windows format.
 The method is entirely text based, and returns the text before the
 last forward or backslash.
 <pre>
 C:\a\b\c.txt --&gt; C:\a\b
 ~/a/b/c.txt  --&gt; ~/a/b
 a.txt        --&gt; ""
 a/b/c        --&gt; a/b
 a/b/c/       --&gt; a/b/c
 C:           --&gt; C:
 C:\          --&gt; C:\
 ~            --&gt; ~
 ~/           --&gt; ~
 ~userBean        --&gt; ~userBean
 ~userBean/       --&gt; ~userBean
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the path of the file, an empty string if none exists, null if invalid</dd></dl>
</li>
</ul>
<a name="getName(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Gets the name minus the path from a full filename.
 <p>
 This method will handle a file in either Unix or Windows format.
 The text after the last forward or backslash is returned.
 <pre>
 a/b/c.txt --&gt; c.txt
 a.txt     --&gt; a.txt
 a/b/c     --&gt; c
 a/b/c/    --&gt; ""
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the name of the file without the path, or an empty string if none exists.
 Null bytes inside string will be removed</dd></dl>
</li>
</ul>
<a name="getBaseName(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBaseName</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getBaseName(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Gets the base name, minus the full path and extension, from a full filename.
 <p>
 This method will handle a file in either Unix or Windows format.
 The text after the last forward or backslash and before the last dot is returned.
 <pre>
 a/b/c.txt --&gt; c
 a.txt     --&gt; a
 a/b/c     --&gt; c
 a/b/c/    --&gt; ""
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the name of the file without the path, or an empty string if none exists. Null bytes inside string
 will be removed</dd></dl>
</li>
</ul>
<a name="getExtension(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExtension</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getExtension(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Gets the extension of a filename.
 <p>
 This method returns the textual part of the filename after the last dot.
 There must be no directory separator after the dot.
 <pre>
 foo.txt      --&gt; "txt"
 a/b/c.jpg    --&gt; "jpg"
 a/b.txt/c    --&gt; ""
 a/b/c        --&gt; ""
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to retrieve the extension of.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the extension of the file or an empty string if none exists or <code>null</code>
 if the filename is <code>null</code>.</dd></dl>
</li>
</ul>
<a name="removeExtension(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeExtension</h4>
<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;removeExtension(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
<div class="block">Removes the extension from a filename.
 <p>
 This method returns the textual part of the filename before the last dot.
 There must be no directory separator after the dot.
 <pre>
 foo.txt    --&gt; foo
 a\b\c.jpg  --&gt; a\b\c
 a\b\c      --&gt; a\b\c
 a.b\c      --&gt; a.b\c
 </pre>
 <p>
 The output will be the same irrespective of the machine that the code is running on.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns null</dd>
<dt><span class="strong">Returns:</span></dt><dd>the filename minus the extension</dd></dl>
</li>
</ul>
<a name="equals(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public static&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2)</pre>
<div class="block">Checks whether two filenames are equal exactly.
 <p>
 No processing is performed on the filenames other than comparison,
 thus this is merely a null-safe case-sensitive equals.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename1</code> - the first filename to query, may be null</dd><dd><code>filename2</code> - the second filename to query, may be null</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filenames are equal, null equals null</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a></dd></dl>
</li>
</ul>
<a name="equalsOnSystem(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalsOnSystem</h4>
<pre>public static&nbsp;boolean&nbsp;equalsOnSystem(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2)</pre>
<div class="block">Checks whether two filenames are equal using the case rules of the system.
 <p>
 No processing is performed on the filenames other than comparison.
 The check is case-sensitive on Unix and case-insensitive on Windows.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename1</code> - the first filename to query, may be null</dd><dd><code>filename2</code> - the second filename to query, may be null</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filenames are equal, null equals null</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a></dd></dl>
</li>
</ul>
<a name="equalsNormalized(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalsNormalized</h4>
<pre>public static&nbsp;boolean&nbsp;equalsNormalized(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2)</pre>
<div class="block">Checks whether two filenames are equal after both have been normalized.
 <p>
 Both filenames are first passed to <a href="../../../../org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String)"><code>normalize(String)</code></a>.
 The check is then performed in a case-sensitive manner.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename1</code> - the first filename to query, may be null</dd><dd><code>filename2</code> - the second filename to query, may be null</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filenames are equal, null equals null</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a></dd></dl>
</li>
</ul>
<a name="equalsNormalizedOnSystem(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalsNormalizedOnSystem</h4>
<pre>public static&nbsp;boolean&nbsp;equalsNormalizedOnSystem(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2)</pre>
<div class="block">Checks whether two filenames are equal after both have been normalized
 and using the case rules of the system.
 <p>
 Both filenames are first passed to <a href="../../../../org/apache/commons/io/FilenameUtils.html#normalize(java.lang.String)"><code>normalize(String)</code></a>.
 The check is then performed case-sensitive on Unix and
 case-insensitive on Windows.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename1</code> - the first filename to query, may be null</dd><dd><code>filename2</code> - the second filename to query, may be null</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filenames are equal, null equals null</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a></dd></dl>
</li>
</ul>
<a name="equals(java.lang.String, java.lang.String, boolean, org.apache.commons.io.IOCase)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public static&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename1,
             <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename2,
             boolean&nbsp;normalized,
             <a href="../../../../org/apache/commons/io/IOCase.html" title="enum in org.apache.commons.io">IOCase</a>&nbsp;caseSensitivity)</pre>
<div class="block">Checks whether two filenames are equal, optionally normalizing and providing
 control over the case-sensitivity.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename1</code> - the first filename to query, may be null</dd><dd><code>filename2</code> - the second filename to query, may be null</dd><dd><code>normalized</code> - whether to normalize the filenames</dd><dd><code>caseSensitivity</code> - what case sensitivity rule to use, null means case-sensitive</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filenames are equal, null equals null</dd><dt><span class="strong">Since:</span></dt>
  <dd>1.3</dd></dl>
</li>
</ul>
<a name="isExtension(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExtension</h4>
<pre>public static&nbsp;boolean&nbsp;isExtension(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;extension)</pre>
<div class="block">Checks whether the extension of the filename is that specified.
 <p>
 This method obtains the extension as the textual part of the filename
 after the last dot. There must be no directory separator after the dot.
 The extension check is case-sensitive on all platforms.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns false</dd><dd><code>extension</code> - the extension to check for, null or empty checks for no extension</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filename has the specified extension</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the supplied filename contains null bytes</dd></dl>
</li>
</ul>
<a name="isExtension(java.lang.String, java.lang.String[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExtension</h4>
<pre>public static&nbsp;boolean&nbsp;isExtension(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;extensions)</pre>
<div class="block">Checks whether the extension of the filename is one of those specified.
 <p>
 This method obtains the extension as the textual part of the filename
 after the last dot. There must be no directory separator after the dot.
 The extension check is case-sensitive on all platforms.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns false</dd><dd><code>extensions</code> - the extensions to check for, null checks for no extension</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filename is one of the extensions</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the supplied filename contains null bytes</dd></dl>
</li>
</ul>
<a name="isExtension(java.lang.String, java.util.Collection)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExtension</h4>
<pre>public static&nbsp;boolean&nbsp;isExtension(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                  <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;extensions)</pre>
<div class="block">Checks whether the extension of the filename is one of those specified.
 <p>
 This method obtains the extension as the textual part of the filename
 after the last dot. There must be no directory separator after the dot.
 The extension check is case-sensitive on all platforms.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to query, null returns false</dd><dd><code>extensions</code> - the extensions to check for, null checks for no extension</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filename is one of the extensions</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the supplied filename contains null bytes</dd></dl>
</li>
</ul>
<a name="wildcardMatch(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wildcardMatch</h4>
<pre>public static&nbsp;boolean&nbsp;wildcardMatch(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardMatcher)</pre>
<div class="block">Checks a filename to see if it matches the specified wildcard matcher,
 always testing case-sensitive.
 <p>
 The wildcard matcher uses the characters '?' and '*' to represent a
 single or multiple (zero or more) wildcard characters.
 This is the same as often found on Dos/Unix command lines.
 The check is case-sensitive always.
 <pre>
 wildcardMatch("c.txt", "*.txt")      --&gt; true
 wildcardMatch("c.txt", "*.jpg")      --&gt; false
 wildcardMatch("a/b/c.txt", "a/b/*")  --&gt; true
 wildcardMatch("c.txt", "*.???")      --&gt; true
 wildcardMatch("c.txt", "*.????")     --&gt; false
 </pre>
 N.B. the sequence "*?" does not work properly at present in match strings.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to match on</dd><dd><code>wildcardMatcher</code> - the wildcard string to match against</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filename matches the wilcard string</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/commons/io/IOCase.html#SENSITIVE"><code>IOCase.SENSITIVE</code></a></dd></dl>
</li>
</ul>
<a name="wildcardMatchOnSystem(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wildcardMatchOnSystem</h4>
<pre>public static&nbsp;boolean&nbsp;wildcardMatchOnSystem(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardMatcher)</pre>
<div class="block">Checks a filename to see if it matches the specified wildcard matcher
 using the case rules of the system.
 <p>
 The wildcard matcher uses the characters '?' and '*' to represent a
 single or multiple (zero or more) wildcard characters.
 This is the same as often found on Dos/Unix command lines.
 The check is case-sensitive on Unix and case-insensitive on Windows.
 <pre>
 wildcardMatch("c.txt", "*.txt")      --&gt; true
 wildcardMatch("c.txt", "*.jpg")      --&gt; false
 wildcardMatch("a/b/c.txt", "a/b/*")  --&gt; true
 wildcardMatch("c.txt", "*.???")      --&gt; true
 wildcardMatch("c.txt", "*.????")     --&gt; false
 </pre>
 N.B. the sequence "*?" does not work properly at present in match strings.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to match on</dd><dd><code>wildcardMatcher</code> - the wildcard string to match against</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filename matches the wilcard string</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/commons/io/IOCase.html#SYSTEM"><code>IOCase.SYSTEM</code></a></dd></dl>
</li>
</ul>
<a name="wildcardMatch(java.lang.String, java.lang.String, org.apache.commons.io.IOCase)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>wildcardMatch</h4>
<pre>public static&nbsp;boolean&nbsp;wildcardMatch(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardMatcher,
                    <a href="../../../../org/apache/commons/io/IOCase.html" title="enum in org.apache.commons.io">IOCase</a>&nbsp;caseSensitivity)</pre>
<div class="block">Checks a filename to see if it matches the specified wildcard matcher
 allowing control over case-sensitivity.
 <p>
 The wildcard matcher uses the characters '?' and '*' to represent a
 single or multiple (zero or more) wildcard characters.
 N.B. the sequence "*?" does not work properly at present in match strings.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>filename</code> - the filename to match on</dd><dd><code>wildcardMatcher</code> - the wildcard string to match against</dd><dd><code>caseSensitivity</code> - what case sensitivity rule to use, null means case-sensitive</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if the filename matches the wilcard string</dd><dt><span class="strong">Since:</span></dt>
  <dd>1.3</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FilenameUtils.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/commons/io/FileExistsException.html" title="class in org.apache.commons.io"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/commons/io/FileSystemUtils.html" title="class in org.apache.commons.io"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/commons/io/FilenameUtils.html" target="_top">Frames</a></li>
<li><a href="FilenameUtils.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2002&#x2013;2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
